package pl.edu.pw.elka.jtrzasko.proz.warcaby.view;

import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;


/**
 * Klasa towrzaca caly w idok aplikacji. Zawiera menu umozliwiajace wybor czy
 * aplikacja ma dzialac w trybie serwer czy klient.
 */
public class MainView extends JFrame
{
	private JPanel mainPanel;

	/**
	 * Stwozenie podstawowego widoku aplikacji wraz z menu
	 */
	public MainView()
	{
		JMenuBar menuBar = new JMenuBar();
		JMenu menuGame = new JMenu("Game");
		final JMenuItem menuItemServer = new JMenuItem("Server");
		final JMenuItem menuItemClient = new JMenuItem("Client");
		JMenuItem menuItemExit = new JMenuItem("Exit");

		menuGame.add(menuItemServer);
		menuGame.add(menuItemClient);
		menuGame.add(menuItemExit);
		menuBar.add(menuGame);

		menuItemExit.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
				System.exit(0);
			}
		});
		menuItemServer.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
				menuItemClient.setEnabled(false);
				menuItemServer.setEnabled(false);
				SwingUtilities.invokeLater(new Runnable()
				{
					public void run()
					{
						setSize(300, 200);
						mainPanel = new ServerView();
						add(mainPanel);
						mainPanel.revalidate();
					}
				});
			}
		});

		menuItemClient.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
				menuItemClient.setEnabled(false);
				menuItemServer.setEnabled(false);
				SwingUtilities.invokeLater(new Runnable()
				{
					public void run()
					{
						mainPanel = new ClientView();
						add(mainPanel);
						mainPanel.revalidate();
					}
				});
			}
		});
		setResizable(false);
		setTitle("Warcaby");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(850, 545);
		setJMenuBar(menuBar);
		setVisible(true);

	}
}
